home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / amok_lha / amok72.lha / while-Interpreter / Source / QuadHoleBefehle.MOD < prev    next >
Text File  |  1993-08-15  |  4KB  |  145 lines

  1. (******************************
  2.  * Programm von Dieter Seidel *
  3.  *  Eingegeben am 14.11.1991  *
  4.  ******************************)
  5.  
  6.  
  7. IMPLEMENTATION MODULE QuadHoleBefehle;
  8.  
  9. FROM InOut    IMPORT WriteLn, Write, WriteString;
  10. FROM QuadLese IMPORT MaxBefehle, MaxZeile,
  11.                      arrZeile, arrList;
  12.  
  13.  
  14. PROCEDURE HoleZuweisung(VAR Befehl       : arrZeile;
  15.                             BefehlsListe : arrList;
  16.                         VAR Zeiger       : CARDINAL);
  17. VAR i : CARDINAL;
  18. BEGIN
  19.   FOR i:=1 TO MaxZeile DO
  20.     Befehl[i]:=" ";
  21.   END;
  22.   i:=1;
  23.   WHILE (BefehlsListe[Zeiger] # ":") AND (i <= MaxZeile) DO
  24.     Befehl[i]:=BefehlsListe[Zeiger];
  25.     INC(i);
  26.     INC(Zeiger);
  27.   END;
  28.   IF i+2 > MaxZeile THEN
  29.     WriteLn;
  30.     WriteString("Kein Quadrupel moeglich!!! Erhoehe die Konstante MaxZeile.");
  31.     WriteLn;
  32.     HALT;
  33.   END;
  34.   Befehl[i]:=":";
  35.   INC(i);
  36.   INC(Zeiger);
  37.   IF (BefehlsListe[Zeiger] >= "0") AND (BefehlsListe[Zeiger] <= "9") THEN
  38.     WHILE (BefehlsListe[Zeiger] >= "0") AND
  39.           (BefehlsListe[Zeiger] <= "9") AND (i <= MaxZeile) DO
  40.       Befehl[i]:=BefehlsListe[Zeiger];
  41.       INC(i);
  42.       INC(Zeiger);
  43.     END;
  44.     IF i > MaxZeile THEN
  45.       WriteLn;
  46.       WriteString("Kein Quadrupel moeglich!!!");
  47.       WriteString(" Erhoehe die Konstante MaxZeile.");
  48.       WriteLn;
  49.       HALT;
  50.     END;
  51.   ELSE
  52.     IF (BefehlsListe[Zeiger] = "p") OR (BefehlsListe[Zeiger] = "s") THEN
  53.       WHILE (BefehlsListe[Zeiger] # ")") AND (i <= MaxZeile) DO
  54.         Befehl[i]:=BefehlsListe[Zeiger];
  55.         INC(i);
  56.         INC(Zeiger);
  57.       END;
  58.       IF i > MaxZeile THEN
  59.         WriteLn;
  60.         WriteString("Kein Quadrupel moeglich!!!");
  61.         WriteString(" Erhoehe die Konstante MaxZeile.");
  62.         WriteLn;
  63.         HALT;
  64.       END;
  65.       Befehl[i]:=")";
  66.       INC(Zeiger);
  67.     ELSE
  68.       IF BefehlsListe[Zeiger] = "X" THEN
  69.         Befehl[i]:="X";
  70.         INC(i);
  71.         INC(Zeiger);
  72.         WHILE (BefehlsListe[Zeiger] >= "0") AND
  73.               (BefehlsListe[Zeiger] <= "9") AND (i <= MaxZeile) DO
  74.           Befehl[i]:=BefehlsListe[Zeiger];
  75.           INC(i);
  76.           INC(Zeiger);
  77.         END;
  78.       ELSE
  79.         WriteLn;
  80.         WriteString("Kein Quadrupel moeglich, da keine gueltige Anweisung!!!");
  81.         WriteLn;
  82.         HALT;
  83.       END;
  84.     END;
  85.   END;
  86.   IF BefehlsListe[Zeiger] = ";" THEN INC(Zeiger) END;
  87. END HoleZuweisung;
  88.  
  89.  
  90. PROCEDURE HoleSchleife(VAR Befehl       : arrZeile;
  91.                            BefehlsListe : arrList;
  92.                        VAR Zeiger       : CARDINAL);
  93. VAR i : CARDINAL;
  94. BEGIN
  95.   FOR i:=1 TO MaxZeile DO
  96.     Befehl[i]:=" ";
  97.   END;
  98.   i:=1;
  99.   WHILE (BefehlsListe[Zeiger] # "d") AND (i <= MaxZeile) DO
  100.     Befehl[i]:=BefehlsListe[Zeiger];
  101.     INC(i);
  102.     INC(Zeiger);
  103.   END;
  104.   IF BefehlsListe[Zeiger] # "d" THEN
  105.     WriteLn;
  106.     WriteString("Kein Quadrupel moeglich, da keine gueltige Anweisung!!!");
  107.     WriteLn;
  108.     HALT;
  109.   END;
  110.   INC(Zeiger);
  111. END HoleSchleife;
  112.  
  113.  
  114. PROCEDURE HoleUnterprogramm(VAR Befehl       : arrZeile;
  115.                                 BefehlsListe : arrList;
  116.                             VAR Zeiger       : CARDINAL);
  117. VAR i : CARDINAL;
  118. BEGIN
  119.   FOR i:=1 TO MaxZeile DO
  120.     Befehl[i]:=" ";
  121.   END;
  122.   Befehl[1]:="U";
  123.   INC(Zeiger);
  124.   i:=2;
  125.   WHILE (BefehlsListe[Zeiger] >= "0") AND
  126.         (BefehlsListe[Zeiger] <= "9") AND (i <= MaxZeile) DO
  127.     Befehl[i]:=BefehlsListe[Zeiger];
  128.     INC(i);
  129.     INC(Zeiger);
  130.   END;
  131.   IF i > MaxZeile THEN
  132.     WriteLn;
  133.     WriteString("Kein Quadrupel moeglich!!!");
  134.     WriteString(" Erhoehe die Konstante MaxZeile.");
  135.     WriteLn;
  136.     HALT;
  137.   END;
  138.   IF BefehlsListe[Zeiger] = ";" THEN
  139.     INC(Zeiger)
  140.   END;
  141. END HoleUnterprogramm;
  142.  
  143.  
  144. END QuadHoleBefehle.
  145.